-
Notifications
You must be signed in to change notification settings - Fork 30
Support the free-threaded build of Python 3.14 #216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Argh: the test timing is flaky. There's probably a better way to synchronize things but I'm running out of steam. Suggestions to improve the tests are very welcome :) |
|
It also occurred to me while working on this that the ubuntu wheel builds probably benefit from the new aarch64 CI runners on github actions. That would allow skipping the slow QEMU-emulated builds on |
|
Thank you @ngoldbaum, sorry I did not see the initial notification that this PR was opened. I can take a look, but please @cclauss and @zmedico take a look as well. |
py_limited_apion the free-threaded build. This tells CFFI to build version-specific wheels instead of abi3 wheels.CompressorandDecompressorclass and ensures that all operations that non-atomically read or mutate state on either class happen while the lock is held. Rather than introduce possible scaling bottlenecks, I've set up thethreading.Lockto always callacquire(blocking=False), and if the lock is already held by another thread, immediately raise an error. This enforces that it's not safe to shareCompressororDecompressorinstances while compression or decompression operations are happening. This follows the approach in Add py free-threaded support + concurrent access test google/brotli#1386.Open questions: